package router

import (
	api "api_gateway/handler/api/user"
	"github.com/gin-gonic/gin"
)

func UserRouter(v *gin.RouterGroup) {
	user := v.Group("/user")
	{
		user.POST("/userFollow", api.UserFollow)                 // 关注
		user.POST("/userNotFollow", api.UserNotFollow)           // 取消关注
		user.POST("/application", api.Application)               // 发送好友申请
		user.POST("/acceptApplication", api.AcceptApplication)   // 同意好友申请
		user.POST("/rejectApplication", api.RejectApplication)   // 拒绝好友申请
		user.GET("/chatRoomRecommendReq", api.ChatRoomRecommend) // 聊天室推荐
		user.GET("/interestTags", api.GetInterestTags)           // 获取兴趣标签列表
		user.POST("/interests/save", api.SaveUserInterests)      // 保存用户兴趣选择

		// 推荐与滑动
		user.GET("/recommendations", api.GetRecommendations)            // 获取推荐用户列表
		user.GET("/smart-recommendations", api.GetSmartRecommendations) // 获取智能推荐用户列表
		user.POST("/swipe", api.SwipeUser)                              // 滑动操作

		// 匹配与互动
		user.GET("/matches", api.GetMatches)          // 获取匹配列表
		user.GET("/match/detail", api.GetMatchDetail) // 获取匹配详情

		// 聊天功能
		user.POST("/message/send", api.SendMessage)                  // 发送消息
		user.GET("/messages", api.GetChatMessages)                   // 获取聊天消息列表
		user.POST("/messages/read", api.MarkMessagesAsRead)          // 标记消息已读
		user.GET("/messages/unreadCount", api.GetUnreadMessageCount) // 获取未读消息数量

		// 通知功能
		user.GET("/notifications", api.GetNotifications)            // 获取通知列表
		user.POST("/notification/read", api.MarkNotificationAsRead) // 标记通知已读

		// WebSocket聊天功能
		user.GET("/chat/ws", api.Chat) // WebSocket聊天连接

		// 灵魂匹配/问答功能
		user.GET("/soul/questions", api.GetSoulQuestions)                // 获取灵魂问答题目
		user.POST("/soul/answer", api.SubmitSoulAnswer)                  // 提交灵魂问答答案
		user.GET("/soul/matches", api.GetSoulMatches)                    // 获取灵魂匹配结果
		user.GET("/soul/match/detail", api.GetSoulMatchDetail)           // 获取灵魂匹配详情
		user.GET("/soul/profile", api.GetUserSoulProfile)                // 获取用户灵魂档案
		user.POST("/soul/compatibility", api.CalculateSoulCompatibility) // 计算灵魂契合度

		// LBS功能
		user.POST("/location/update", api.UpdateLocation) // 更新用户位置
		user.POST("/nearby/users", api.GetNearbyUsers)    // 获取附近的人
		user.POST("/location/get", api.GetUserLocation)   // 获取用户位置

		// 好友系统
		user.POST("/friend/add", api.AddFriend)                  // 添加好友
		user.POST("/friend/remove", api.RemoveFriend)            // 删除好友
		user.GET("/friends", api.GetFriends)                     // 获取好友列表
		user.POST("/friend/group/create", api.CreateFriendGroup) // 创建分组
		user.POST("/friend/group/rename", api.RenameFriendGroup) // 重命名分组
		user.POST("/friend/group/delete", api.DeleteFriendGroup) // 删除分组
		user.POST("/friend/moveToGroup", api.MoveFriendToGroup)  // 移动好友到分组

		// 好友动态
		user.POST("/friend/activity/post", api.PostFriendActivity) // 发表好友动态
		user.GET("/friend/activities", api.GetFriendActivities)    // 获取好友动态
	}
	v.GET("/health", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"status":  "ok",
			"message": "API Gateway is running",
		})
	})
}
